From 34bac08a56e084bdd11dd83cba9a35be886079d8 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Wed, 14 Feb 2007 14:44:07 +0000 Subject: [PATCH] [XEN] Re-sync PAE l3 shadows when PV guests change them -in particular, for PAE Solaris guests Signed-off-by: Tim Deegan --- xen/arch/x86/mm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 2ef442f546..2d0afd735f 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -977,6 +977,19 @@ static void pae_flush_pgd( l3_pgentry_t *l3tab_ptr; struct pae_l3_cache *cache; + if ( unlikely(shadow_mode_enabled(d)) ) + { + cpumask_t m = CPU_MASK_NONE; + /* Re-shadow this l3 table on any vcpus that are using it */ + for_each_vcpu ( d, v ) + if ( pagetable_get_pfn(v->arch.guest_table) == mfn ) + { + paging_update_cr3(v); + cpus_or(m, m, v->vcpu_dirty_cpumask); + } + flush_tlb_mask(m); + } + /* If below 4GB then the pgdir is not shadowed in low memory. */ if ( !l3tab_needs_shadow(mfn) ) return; -- 2.30.2